home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / etc / RCS / signal.c,v < prev    next >
Text File  |  1989-06-15  |  1KB  |  97 lines

  1. head     1.3;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.3
  10. date     89.06.15.14.52.43;  author ouster;  state Exp;
  11. branches ;
  12. next     1.2;
  13.  
  14. 1.2
  15. date     88.07.28.17.48.03;  author ouster;  state Exp;
  16. branches ;
  17. next     1.1;
  18.  
  19. 1.1
  20. date     88.07.02.16.49.42;  author ouster;  state Exp;
  21. branches ;
  22. next     ;
  23.  
  24.  
  25. desc
  26. @@
  27.  
  28.  
  29. 1.3
  30. log
  31. @Make signal handlers return void instead of int.
  32. @
  33. text
  34. @/*
  35.  * Copyright (c) 1985 Regents of the University of California.
  36.  * All rights reserved.  The Berkeley software License Agreement
  37.  * specifies the terms and conditions for redistribution.
  38.  */
  39.  
  40. #if defined(LIBC_SCCS) && !defined(lint)
  41. static char sccsid[] = "@@(#)signal.c    5.2 (Berkeley) 3/9/86";
  42. #endif LIBC_SCCS and not lint
  43.  
  44. /*
  45.  * Almost backwards compatible signal.
  46.  */
  47. #include <signal.h>
  48.  
  49. void (*
  50. signal(s, a))()
  51.     int s;
  52.     void (*a)();
  53. {
  54.     struct sigvec osv, sv;
  55.     static int mask[NSIG];
  56.     static int flags[NSIG];
  57.  
  58.     sv.sv_handler = a;
  59.     sv.sv_mask = mask[s];
  60.     sv.sv_flags = flags[s];
  61.     if (sigvec(s, &sv, &osv) < 0)
  62.         return (BADSIG);
  63.     if (sv.sv_mask != osv.sv_mask || sv.sv_flags != osv.sv_flags) {
  64.         mask[s] = sv.sv_mask = osv.sv_mask;
  65.         flags[s] = sv.sv_flags = osv.sv_flags;
  66.         if (sigvec(s, &sv, (struct sigvec *) 0) < 0)
  67.             return (BADSIG);
  68.     }
  69.     return (osv.sv_handler);
  70. }
  71. @
  72.  
  73.  
  74. 1.2
  75. log
  76. @Lint.
  77. @
  78. text
  79. @d16 1
  80. a16 1
  81. int (*
  82. d18 2
  83. a19 1
  84.     int s, (*a)();
  85. @
  86.  
  87.  
  88. 1.1
  89. log
  90. @Initial revision
  91. @
  92. text
  93. @d32 1
  94. a32 1
  95.         if (sigvec(s, &sv, 0) < 0)
  96. @
  97.